#!/bin/bash

# 配置文件路径
PUBSPEC_FILE="pubspec.yaml"
BUILD_TYPE=${1:-release}  # 默认 release

# 1️⃣ 提取 APP 名称
APP_NAME=$(grep '^name:' "$PUBSPEC_FILE" | awk '{print $2}')

# 2️⃣ 提取完整版本号（保留 +，后续替换为 _）
RAW_VERSION=$(grep '^version:' "$PUBSPEC_FILE" | awk '{print $2}')
SAFE_VERSION=${RAW_VERSION//+/_}  # 替换 + 为 _

# 3️⃣ 获取当前时间标签（MM-DD-HH-MM）
TIME_TAG=$(date +"%m-%d-%H-%M")

# 4️⃣ 构建 APK 文件名和输出路径
APK_NAME="${APP_NAME}_${BUILD_TYPE}_${SAFE_VERSION}_${TIME_TAG}.apk"
DIST_DIR="./dist"
APK_DEST="${DIST_DIR}/${APK_NAME}"

# 5️⃣ 打印构建信息
echo "📦 开始打包 Flutter APK..."
echo "📌 APP_NAME: $APP_NAME"
echo "📌 版本号: $RAW_VERSION → 用作文件名: $SAFE_VERSION"
echo "📌 构建类型: $BUILD_TYPE"
echo "📌 时间戳: $TIME_TAG"


if [ "$BUILD_TYPE" = "release" ]; then
  flutter build apk --release
  APK_SOURCE="build/app/outputs/flutter-apk/app-release.apk"
else
  flutter build apk --debug
  APK_SOURCE="build/app/outputs/flutter-apk/app-debug.apk"
fi

# 7️⃣ 检查 APK 是否存在
if [ ! -f "$APK_SOURCE" ]; then
  echo "❌ 构建失败，未找到 APK 文件：$APK_SOURCE"
  exit 1
fi

# 8️⃣ 创建 dist 目录
mkdir -p "$DIST_DIR"

# 9️⃣ 复制 APK 并重命名
cp "$APK_SOURCE" "$APK_DEST"
echo "✅ 构建成功！APK 输出路径：$APK_DEST"

# 🔟 自动打开 dist 文件夹（兼容 macOS 和 Windows）
if [[ "$OSTYPE" == "darwin"* ]]; then
  open "$DIST_DIR"
elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
  explorer.exe "$(cygpath -w "$DIST_DIR")"
else
  echo "📁 请手动打开目录：$DIST_DIR"
fi
